The present disclosure relates to systems and methods for streaming media content, and more particularly, this disclosure relates to systems and methods for chunking streamed media content.
Progressive downloading is commonly used for streaming media from a server to a client application. Using progressive download, a client video player can start playing a video clip even before the clip has been fully downloaded. Some progressive download methods require the input file to be segmented into a number of chunks, where each chunk represents an independent media file to be downloaded from the server. A media player capable of playing such chunked files can download and play the chunked media files one after another in a streaming session. Apple's HTTP Live Streaming System is an example of such an approach. In another example, progressive downloading and chunking is employed on certain mobile devices (such as many Nokia Series 40 phones), where it is not possible to play a large video file over HTTP due to the small memory footprint of the device. For such devices, chunking large video clips into multiple chunks and playing them separately is a viable progressive download and playback option.
Unfortunately, the chunk size, which is determined at the server, may not be common for all device types. For example, Apple HTTP Live Streaming recommends a chunk size of 10 seconds. Such small chunk size however does not play well on feature phones using a similar technique.
Furthermore, when downloading files over HTTP, it is not possible to download more than one file at a time using the same HTTP connection on most feature phones. Tearing down and setting up new HTTP connections for each of the chunks is less efficient than the alternate approach of using the same HTTP connection to download arbitrary number of chunks.